package cn.wolfcode.trip.base.mapper;

import cn.wolfcode.trip.base.domain.FriendNews;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Set;

public interface FriendNewsMapper {
    int deleteByPrimaryKey(Long id);

    int insert(FriendNews record);

    FriendNews selectByPrimaryKey(Long id);

    List<FriendNews> selectAll();

    int updateByPrimaryKey(FriendNews record);

    /**
     * 保存动态和及其被@的朋友信息
     * @param id
     * @param aitedfriendId
     */
    void insertFriendnewsAited(@Param("id") Long id, @Param("aitedfriendId") Long aitedfriendId);

    /**
     * 保存动态和及其被指定的朋友信息
     * @param id
     * @param pointedfriendId
     */
    void insertFriendnewsPointed(@Param("id") Long id, @Param("pointedfriendId") Long pointedfriendId);

    /**
     * app  查询某人自己发的动态
     * @param id
     * @return
     */
    Set<FriendNews> selectFriendNews(Long id);

    /**
     * app 根据动态id查询指定可看的人
     * @param id
     * @return
     */
    List selectPointedPersonIdsByFriendNewsId(Long id);

    /**
     * app 查新动态
     * @param friendNewsIdsOfYourFriends
     * @return
     */
    Set<FriendNews> selectFriendNewses(List friendNewsIdsOfYourFriends);

    /**
     * app 根据动态id查询@的人
     * @param id
     * @return
     */
    List selectAitedPersonIdsByFriendNewsId(Long id);

    /**
     * app 根据用户查询动态id
     * @param currentUserId
     * @return
     */
    List selectFriendNewsIds(Long currentUserId);

    /**
     * 根据动态id查询动态发表人
     * @param friendNewsId
     * @return
     */
    Long selectFriendNewsPublishPeopleIdByFriendNewsId(Long friendNewsId);
}